package cn.wolfcode.crm.service;

import cn.wolfcode.crm.domain.Accident;
import cn.wolfcode.crm.query.AccidentQueryObject;
import cn.wolfcode.crm.query.QueryObject;
import cn.wolfcode.crm.util.PageResult;

import java.util.List;

public interface IAccidentService {
    void save (Accident entity);
    void update(Accident entity);
    void delete(Long id);
    Accident get(Long id);
    List<Accident> getAll();

    PageResult query(AccidentQueryObject qo);
    /**
     * 提交验证,更改理赔表单状态
     * */
    void updateState(Long id);

    /*
     * 查询所有验证待理赔数据
     * */
    List<Accident> accidentAndClaimBill();

    void updateBilledAudit(Long accidentId);

    void updateInvalidateState(Long id);

    PageResult listByAudit(QueryObject qo);
    /*
    * 查询状态state=2和state=3的数据信息,即验证完成,未填明细和已填明细,未提审的数据
    * */
    PageResult queryValidateUnBill(QueryObject qo);

    PageResult listByCompensation(QueryObject qo);

    /*
     * 更改数据状态为已审核,待支付state=5
     * */
    void changeStateAudited(Long id);

    /*
     * 更改数据状态为已支付state=6
     * */
    void updateStateToPaied(Long id);

    PageResult allList(AccidentQueryObject qo);
}
